﻿Namespace Negocios

    Public Class PessoaJuridica

#Region "Variáveis"

        Private dcDados As Dados.dcDadosDataContext

#End Region

#Region "Propriedades"

        Friend Property Contexto As Dados.dcDadosDataContext
            Get
                If dcDados Is Nothing Then dcDados = New Dados.dcDadosDataContext
                Return dcDados
            End Get
            Set(ByVal value As Dados.dcDadosDataContext)
                dcDados = value
            End Set
        End Property

#End Region

#Region "Construtores"

#End Region

#Region "Funções Privadas"

        Private Function ConverterDadosEmObjeto(ByVal objPessoaJuridicaDados As Dados.PessoaJuridica) As Objetos.PessoaJuridica

            If objPessoaJuridicaDados Is Nothing Then Return Nothing

            Dim objPessoaJuridica As New Objetos.PessoaJuridica

            With objPessoaJuridica
                .CodigoPessoa = Convert.ToInt32(objPessoaJuridicaDados.CodigoPessoa)
                .NomeFantasia = Convert.ToString(objPessoaJuridicaDados.NomeFantasia)
                .RamoAtividade = Convert.ToString(objPessoaJuridicaDados.RamoAtividade)
                .RazaoSocial = Convert.ToString(objPessoaJuridicaDados.RazaoSocial)
            End With

            Return objPessoaJuridica

        End Function

        Private Function ConverterDadosEmObjeto(ByVal listPessoaJuridicaDados As List(Of Dados.PessoaJuridica)) As List(Of Objetos.PessoaJuridica)

            If listPessoaJuridicaDados Is Nothing Then Return Nothing

            Dim listPessoaJuridica As New List(Of Objetos.PessoaJuridica)

            For Each objPessoaJuridicaDados In listPessoaJuridicaDados
                listPessoaJuridica.Add(ConverterDadosEmObjeto(objPessoaJuridicaDados))
            Next

            Return listPessoaJuridica

        End Function

        Private Function RetornarPessoaJuridica() As IQueryable(Of Dados.PessoaJuridica)

            Return (From PJ In Contexto.PessoaJuridicas)

        End Function

        Private Function RetornarPessoaJuridica(ByVal intCodigoPessoa As Integer) As IQueryable(Of Dados.PessoaJuridica)

            Return (From PJ In RetornarPessoaJuridica() Where PJ.CodigoPessoa.Equals(intCodigoPessoa))

        End Function

#End Region

#Region "Friend"

#End Region

#Region "Públicas"

        Public Function EncontrarPorCodigo(ByVal intCodigoPessoa As Integer) As Objetos.PessoaJuridica

            Try

                Dim objPessoaJuridica As Dados.PessoaJuridica = RetornarPessoaJuridica(intCodigoPessoa).SingleOrDefault

                Return ConverterDadosEmObjeto(objPessoaJuridica)

            Catch ex As Exception
                Throw
            End Try

        End Function

#End Region

    End Class

End Namespace

